<?
	/* shoppingcart.php
	 *
	 *
	 */

	
	
	class Carrello {
		
		var $id_negozio;
		var $db;
		var $id_carrello;
		
		var $messaggio;
		
		function Carrello($id_negozio, &$db)
		{
			$this->id_negozio = $id_negozio;
			$this->db = &$db;
			if(!$_COOKIE[id_carrello] ) {
				$this->id_carrello = md5(uniqid(rand()));
				SetCookie("id_carrello", $this->id_carrello, (time() + (60*60*24*15)),"/" );
			}
			else 
			{
				$this->id_carrello = $_COOKIE[id_carrello];
			}
		}

		/*
		Ritorna la quantità già presente nel carrello
		*/
		function check_prod($id_prodotto, $varianti)
		{
			$qty = 0;
			$qpiece = '';
			if(is_array($varianti)) 
			{
				foreach($varianti as $n=>$arv)if($arv[id]>0)
				{
					$n = $n+1;
					$qpiece .= " AND id_variante_$n = '".$arv[id]."' AND valore_variante_$n = '".$arv[valore]."'";
				}
			}else {
				$qpiece = " AND id_variante_1 = '0' AND valore_variante_1 = '-' AND id_variante_2 = '0' AND valore_variante_2 = '-'";
			}
			$query = "SELECT quantita FROM moka_ecomm_$this->id_negozio.carrelli WHERE id_carrello='$this->id_carrello' AND id_prodotto=$id_prodotto $qpiece";
			$result = $this->db->query($query);
			if(mysql_error())echo $query." -> ".mysql_error();
			if(mysql_num_rows($result) > 0)
			{
				$row = mysql_fetch_object($result);
				$qty += $row->quantita;
			}
			return $qty;
		}
		
		function add_prod($id_prodotto, $quantita, $varianti) {
			
			if($quantita>0)
			{
				// resetto eventuale ordine precedentemente concluso
				$_SESSION[ordine_concluso] = false;				
				$qty = $this->check_prod($id_prodotto, $varianti);
				$qpieceI = "";
				$qpieceU = "";
				if(is_array($varianti))
				{ 
					foreach($varianti as $n=>$arv)if($arv[id]>0)
					{
						$n = $n+1;
						$qpieceI .= " , id_variante_$n = '".$arv[id]."', valore_variante_$n = '".$arv[valore]."' ";
						$qpieceU .= " AND id_variante_$n = '".$arv[id]."' AND valore_variante_$n = '".$arv[valore]."' ";
					}
				}else 
				{
					$qpieceI = " , id_variante_1 = '0' , valore_variante_1 = '-' , id_variante_2 = '0' , valore_variante_2 = '-'";
					$qpieceU = " AND id_variante_1 = '0' AND valore_variante_1 = '-' AND id_variante_2 = '0' AND valore_variante_2 = '-'";
				}
				if($qty == 0) {
					$query = "INSERT INTO moka_ecomm_$this->id_negozio.carrelli SET id_carrello='$this->id_carrello', id_prodotto=$id_prodotto, quantita=$quantita, data_ins=".time()." $qpieceI ";
					//echo "INSERITO!";
				} else {
					$quantita += $qty;
					$query = "UPDATE moka_ecomm_$this->id_negozio.carrelli SET quantita=$quantita WHERE id_carrello='$this->id_carrello' AND  id_prodotto=$id_prodotto $qpieceU";	
					//echo "AGGIUNTO";
				}
				$this->messaggio = "Prodotto aggiunto al carrello";
				$rs = $this->db->query($query);
				if(mysql_error()) $query." -> ". mysql_error() ; 	
				return $rs ;
			}
			return false;		
		}
		
		function del_prod($id_prodotto, $varianti) {
				$qpieceU = "";
				if(is_array($varianti))
				{ 
					foreach($varianti as $n=>$arv)if($arv[id]>0)
					{
						$n = $n+1;
						$qpieceU .= " AND id_variante_$n = '".$arv[id]."' AND valore_variante_$n = '".$arv[valore]."' $qpieceU ";
					}
				}else 
				{
					$qpieceU = " AND id_variante_1 = '0' AND valore_variante_1 = '-' AND id_variante_2 = '0' AND valore_variante_2 = '-'";
				}
			$query = "DELETE FROM moka_ecomm_$this->id_negozio.carrelli WHERE id_carrello='$this->id_carrello' AND id_prodotto=$id_prodotto ";
			return $this->db->query($query);
		}
		
		function set_quant($id_prodotto, $quantita, $varianti) {
			if($quantita==0)
			{
				return $this->del_prod($id_prodotto, $varianti);
			}
			else 
			{
				$qpieceU = "";
				if(is_array($varianti))
				{ 
					//print_r($varianti );
					foreach($varianti as $n=>$arv)
					{
						$n = $n+1;
						$qpieceU .= " AND id_variante_$n = '".$arv[id]."' AND valore_variante_$n = '".$arv[valore]."' ";
					}
				}else 
				{
					$qpieceU = " AND id_variante_1 = '0' AND valore_variante_1 = '-' AND id_variante_2 = '0' AND valore_variante_2 = '-'";
				}
				$query = "UPDATE moka_ecomm_$this->id_negozio.carrelli SET quantita=$quantita WHERE id_carrello='$this->id_carrello' AND id_prodotto=$id_prodotto $qpieceU ";
				$this->messaggio = "Quantità aggiornata nel carrello";
				//echo $query ;
				return $this->db->query($query);
			}
		}
		
		function clear_cart() {
			$query = "DELETE FROM moka_ecomm_$this->id_negozio.carrelli WHERE id_carrello='$this->id_carrello' ";
			return $this->db->query($query);
		}
		
		function get_totale() {
			$total = 0;
			$query = "SELECT carrelli.id_prodotto, carrelli.quantita,  prodotti_prezzi_quant.prezzo
					FROM moka_ecomm_$this->id_negozio.carrelli 
					INNER JOIN moka_ecomm_$this->id_negozio.prodotti ON  carrelli.id_prodotto = prodotti.id
					LEFT JOIN moka_ecomm_$this->id_negozio.prodotti_prezzi_quant ON prodotti_prezzi_quant.id_prodotto=carrelli.id_prodotto AND prodotti_prezzi_quant.id_variante_1=carrelli.id_variante_1 AND prodotti_prezzi_quant.id_variante_2=carrelli.id_variante_2 AND prodotti_prezzi_quant.valore_1=carrelli.valore_variante_1 AND prodotti_prezzi_quant.valore_2=carrelli.valore_variante_2
					WHERE id_carrello='$this->id_carrello' ";
			$result = $this->db->query($query);
			if(mysql_num_rows($result) > 0) {
				while($row = mysql_fetch_object($result)) {
					
					$total += ($row->quantita * $row->prezzo);
				}
			}
			return $total;
		}
		
		function get_carrello() {
			$count = 0;
			$query = "SELECT  carrelli.id_prodotto, carrelli.quantita, prodotti_prezzi_quant.prezzo, carrelli.id_variante_1,carrelli.id_variante_2,carrelli.valore_variante_1,carrelli.valore_variante_2 
FROM moka_ecomm_".$this->id_negozio.".carrelli 
LEFT JOIN moka_ecomm_$this->id_negozio.prodotti_prezzi_quant ON prodotti_prezzi_quant.id_prodotto=carrelli.id_prodotto AND prodotti_prezzi_quant.id_variante_1=carrelli.id_variante_1 AND prodotti_prezzi_quant.id_variante_2=carrelli.id_variante_2 AND prodotti_prezzi_quant.valore_1=carrelli.valore_variante_1 AND prodotti_prezzi_quant.valore_2=carrelli.valore_variante_2
WHERE id_carrello='".$this->id_carrello."' 
ORDER BY data_ins";

			$result = $this->db->query($query);
			$n=0;
			if(!$result)echo "$query --> ".mysql_error();
			while($row = mysql_fetch_object($result)) {
				
					//echo " ### ".$row->id_prodotto;
					 ; 
					if($last_idp!=$row->id_prodotto)
					{
						if(is_object($questo_prodotto))
						{
							$contents['prods'][$questo_prodotto->id] = $questo_prodotto;
							$contents['num_prodotti'] = $count;	
							$contents['totale'] += $questo_prodotto->imponibile;
							
						}
						$questo_prodotto = new Prodotto($this->id_negozio,$row->id_prodotto, &$this->db);
						$last_idp = $row->id_prodotto;
					}
					$n++;
				
				//$contents['prods'][$row->id_prodotto][q] = $row->quantita;		
				$questo_prodotto->k[quantita][] 		= 	$row->quantita;
				$questo_prodotto->k[qtot] 				+= 	$row->quantita;
				
				$questo_prodotto->k[id_variante_1][] 	= 	$row->id_variante_1;
				$questo_prodotto->k[id_variante_2][] 	= 	$row->id_variante_2;
				
				$questo_prodotto->k[valore_variante_1][] = 	$row->valore_variante_1;
				$questo_prodotto->k[valore_variante_2][] = 	$row->valore_variante_2;
				
				$questo_prodotto->k[nome_v1][] 			= 	$questo_prodotto->varianti[$row->id_variante_1][valori][$row->valore_variante_1][ita];
				$questo_prodotto->k[nome_v2][] 			= 	$questo_prodotto->varianti[$row->id_variante_2][valori][$row->valore_variante_2][ita];
								
				
				$questo_prodotto->k[nome_variante_v1][] = 	$questo_prodotto->varianti[$row->id_variante_1][nome_ita];
				$questo_prodotto->k[nome_variante_v2][] = 	$questo_prodotto->varianti[$row->id_variante_2][nome_ita];
				
				if($row->id_variante_2>0)	$questo_prodotto->k[imponibile_v2][] 	= $row->quantita*($row->incremento_v2+$questo_prodotto->prezzo);
				if($row->id_variante_1>0)	$questo_prodotto->k[imponibile_v1][] 	= $row->quantita*($row->incremento_v1+$questo_prodotto->prezzo);
				
				$tmp_prezzo = $questo_prodotto->get_price($row->valore_variante_1,$row->valore_variante_2);
				//print_r($row);
				//echo "# v1".$row->valore_variante_1." v2".$row->valore_variante_2."   ".$questo_prodotto->get_price($row->valore_variante_1,$row->valore_variante_2)." # ";
				
				$questo_prodotto->k[prezzo][] =  $tmp_prezzo;
				// IMPONIBILE DI RIGA
				$imp_riga = $row->quantita*($tmp_prezzo);
				$questo_prodotto->k[imponibile][] = number_format($imp_riga, $_SESSION[configurazione][n_decimali],"."," ");
				
				// IMPONIBILE DI UN  PRODOTTO
				$questo_prodotto->imponibile += number_format($imp_riga, $_SESSION[configurazione][n_decimali],"."," ");
				
				//print_r($questo_prodotto);
				//$questo_prodotto->quantita += $row->quantita;
				
				$contents['num_colli'] += $row->quantita;
				$lista_id .= $row->id_prodotto.',';				
				$count++;
			}
			if(is_object($questo_prodotto))
			{
				$contents['prods'][$questo_prodotto->id] = $questo_prodotto;
				$contents['num_prodotti'] = $count;	
				$contents['totale'] += $questo_prodotto->imponibile;
				//
			}
			$contents['totale'] = number_format($contents['totale'], 2);					
			$contents['totale'] = number_format($contents['totale'], 2);
			$lista_id = substr($lista_id,0,-1);
			
			
			return $contents;
		}
		
		function num_prodotti() {
			$query = "SELECT COUNT(id_prodotto) FROM moka_ecomm_$this->id_negozio.carrelli WHERE id_carrello='$this->id_carrello' ";
			$result = $this->db->query($query);
			$num_prodotti = mysql_fetch_row($result);
			return $num_prodotti[0];
		}
		
		function num_colli() {
			$colli = 0;
			$query = "SELECT SUM(quantita) as colli FROM moka_ecomm_$this->id_negozio.carrelli WHERE id_carrello='$this->id_carrello' ";
			$result = $this->db->query($query);
			while($row = mysql_fetch_object($result)) {
				$colli += $row->colli;
			}
			return $colli;
		}
	}
?>